package com.dkm.nettysocketdemo.myWebsite.action;

import com.dkm.nettysocketdemo.myWebsite.domain.HelmetFeedback;
import com.dkm.nettysocketdemo.myWebsite.service.HelmetFeedbackService;
import com.dkm.nettysocketdemo.untils.Message;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * @ClassName : HelmetFeedbackAction  //类名
 * @Description : 用户反馈模块 //描述
 * @Author : YR//作者
 * @Date: 2020-04-02 11:42  //时间
 */
@RestController
@RequestMapping("HelmetFeedbackAction")
public class HelmetFeedbackAction {

    /**
     * 反馈服务接口
     */
    @Resource
    HelmetFeedbackService helmetFeedbackService;

    /**
     * 根据反馈id 查询
     * @param pkFeedBackId 反馈对象id
     * @return 反馈对象
     */
    @GetMapping("feedbackFindById/{pkFeedBackId}")
    public Message feedbackFindById(@PathVariable("pkFeedBackId") String pkFeedBackId){
        Message message=new Message();
        HelmetFeedback feedback = helmetFeedbackService.findById(pkFeedBackId);
        message.setCode(200);
        message.setData(feedback);
        return  message;
    }

    /**
     * 新增反馈图片
     * @param file 图片文件
     * @return 图片存储地址
     * @throws IOException IO流异常
     */
    @PostMapping("addImg")
    public Message addImg(@RequestBody MultipartFile file) throws IOException {
        Message message = new Message();
        String path = helmetFeedbackService.addImg(file);
        message.setCode(200);
        message.setMsg("新增成功");
        message.setData(path);
        return message;
    }

    /**
     *  新增反馈
     * @param helmetFeedback 反馈对象
     * @return 回调函数
     */
    @PostMapping("insertHelmetFeedback")
    public Message insertHelmetFeedback(HelmetFeedback helmetFeedback){
        Message message = new Message();
        int row = helmetFeedbackService.insertHelmetFeedback(helmetFeedback);
        if (row>0){
            message.setCode(200);
            message.setMsg("插入成功");
        }else{
            message.setCode(0);
            message.setMsg("插入失败");
        }
        return message;
    }

    /**
     * 修改反馈
     * @param helmetFeedback 反馈对象
     * @return 回调函数
     */
    @PostMapping("updateHelmetFeedback")
    public Message updateHelmetFeedback(HelmetFeedback helmetFeedback){
        Message message = new Message();
        int row = helmetFeedbackService.updateHelmetFeedback(helmetFeedback);
        if (row>0){
            message.setCode(200);
            message.setMsg("修改成功");
            message.setCount(row);
        }else{
            message.setCode(0);
            message.setMsg("修改失败");
        }
        return  message;
    }

    /**
     * 删除反馈
     * @param pkFeedBack 反馈id
     * @return 回调函数
     */
    @DeleteMapping("deleteHelmetFeedbackById/{pkFeedBack}")
    public Message deleteHelmetFeedbackById(@PathVariable("pkFeedBack")String pkFeedBack){
        Message message = new Message();
        int row = helmetFeedbackService.deleteById(pkFeedBack);
        if (row>0){
            message.setCode(200);
            message.setMsg("删除成功");
        }else{
            message.setCode(0);
            message.setMsg("删除失败");
        }
        return message;
    }

    /**
     * 批量条件查询
     * @param helmetFeedback 反馈对象
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param page 当前页数
     * @param limit 显示行数
     * @return 查询结果
     */
    @GetMapping("selectAllHelmetFeedback")
    public Message selectAllHelmetFeedback(HelmetFeedback helmetFeedback,String startTime,String endTime,Integer page,Integer limit){
        Message message = new Message();
        List<HelmetFeedback> helmetFeedbacks = helmetFeedbackService.selectAllHelmetFeedback(helmetFeedback, startTime, endTime, page, limit);
        Integer rowCount = helmetFeedbackService.rowCount(helmetFeedback, startTime, endTime);
        message.setCode(0);
        message.setCount(rowCount);
        message.setData(helmetFeedbacks);
        return message;
    }

    /**
     * 批量删除
     * @param ids 反馈id集合
     * @return 回调函数
     */
    @DeleteMapping("deleteAllHelmetFeedback")
    public Message deleteAllHelmetFeedback(@RequestParam(value = "ids[]", required = false) String[] ids){
        Message message=new Message();
        List<String> idssi = null;
        //id为空的情况下
        if (ObjectUtils.isEmpty(ids)) {
            message.setMsg("操作失败");
            message.setCode(0);
        } else {
            idssi = Arrays.asList(ids);
        }

        int row = helmetFeedbackService.deleteAll(idssi);
        if (row>0){
            message.setMsg("操作成功");
            message.setCode(200);
            message.setCount(row);
        }else {
            message.setMsg("操作失败");
            message.setCode(0);
        }
        return  message;
    }
}
